/**
 * Copyright (c)  2018 All Rights Reserved.
 */
package com.skyable.device.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author GaoYuan
 * @date 2021/7/3 9:50
 * @desc 设备信息
 */
@Data
@TableName("device_info")
public class DomainDeviceInfo extends BaseEntity {

    /**
     * 设备物理ID
     */
    @ApiModelProperty(value = "设备ID")
    @TableId
    private String  physicalDeviceId;
    /**
     * 子域ID
     */
    @ApiModelProperty(value = "子域ID")
    private Long  subDomainId;
    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称")
    private String  name;
    /**
     * 设备私钥
     */
    @ApiModelProperty(value = "设备私钥")
    private String  aesKey;
    /**
     * 状态 0(INVALID), 1(ACTIVE), 2(FROZEN), 3(DELETED), 4(PRE_BIND)
     */
    @ApiModelProperty(value = "状态")
    private Integer status;

    private String  reserve;
    /**
     * 父类设备ID（一级设备ID）
     */
    @ApiModelProperty(value = "父设备")
    private String parentId;

    /**
     * 主域ID
     */
    @ApiModelProperty(value = "主域ID")
    @TableField(exist = false)
    private Long domainId;
    /**
     * IP
     */
    @ApiModelProperty(value = "IP地址")
    @TableField(exist = false)
    private String ip;
    /**
     * 版本
     */
    @ApiModelProperty(value = "版本号")
    @TableField(exist = false)
    private String devVersion;
    /**
     * 模组版本
     */
    @ApiModelProperty(value = "模组版本号")
    @TableField(exist = false)
    private String modVersion;
    /**
     * MAC地址
     */
    @ApiModelProperty(value = "MAC地址")
    @TableField(exist = false)
    private String mac;
    /**
     * 导入时间
     */
    @ApiModelProperty(value = "导入时间")
    @TableField(exist = false)
    private String importTime;
    /**
     * 激活时间
     */
    @ApiModelProperty(value = "激活时间")
    @TableField(exist = false)
    private String firstActiveTime;
    /**
     * 最近激活时间
     */
    @ApiModelProperty(value = "最近激活时间")
    @TableField(exist = false)
    private String lastActiveTime;
    /**
     * 最近一次的心跳时间 (iso 8601标准)
     */
    @ApiModelProperty(value = "心跳时间")
    @TableField(exist = false)
    private String heartbeatTime;
    /**
     * 国家
     */
    @ApiModelProperty(value = "国家")
    @TableField(exist = false)
    private String country;
    /**
     * 省份
     */
    @ApiModelProperty(value = "省份")
    @TableField(exist = false)
    private String province;
    /**
     * 城市
     */
    @ApiModelProperty(value = "城市")
    @TableField(exist = false)
    private String city;
    /**
     * 激活状态 0 全部  1 激活   2 未激活
     */
    @ApiModelProperty(value = "激活状态")
    @TableField(exist = false)
    private Integer active;
    /**
     * 在线状态 0 全部  1 在线   2 不在线
     */
    @ApiModelProperty(value = "在线状态")
    @TableField(exist = false)
    private Integer online;

    /**
     * 子设备集合
     */
    @TableField(exist = false)
    private List<DomainDeviceInfo> children;

}